
#ifndef  _RADIX_ARCHAISM_COLOR_H_
#define  _RADIX_ARCHAISM_COLOR_H_

#include <Archaism/Header.h>

_BeginNamespace(Radix)

class Color
{
public:
	Color(real r=0.0f, real g=0.0f, real b=0.0f, real a=0.0f);
	Color(const Color& c);
	~Color();

public:
	Color& operator=(const Color& c);
	Color operator-();

	Color operator+(const Color& c);
	Color operator-(const Color& c);
	Color operator*(const Color& c);

	Color& operator+=(const Color& c);
	Color& operator-=(const Color& c);
	Color& operator*=(const Color& c);

	bool operator==(const Color& c);
	bool operator!=(const Color& c);

public:
	Color& clamp(real min = 0, real max = 1);

public:
	real r;
	real g;
	real b;
	real a;
};

_EndNamespace(Radix)

#endif//_RADIX_ARCHAISM_COLOR_H_
